package com.xh.cdp.common.util;

import java.lang.reflect.Array;

import org.apache.commons.lang3.Validate;

/**
 * 扩展apche commons Validate的功能
 *
 * @author Hsu。
 * @since Oct 12, 2016
 */
public class ValidateUtil extends Validate {

	private ValidateUtil() throws IllegalAccessException {
		throw new IllegalAccessException();
	}

	/**
	 * 扩展对原生数组的判断
	 * 
	 * @param array
	 * @param index
	 */
	public static void validPrimitiveArrayIndex(Object array, int index) {
		Validate.notNull(array, "参数array不能为空:" + array);
		Validate.isTrue(array.getClass().isArray(), "参数array必须是数组:" + array);
		Validate.isTrue(array.getClass().getComponentType().isPrimitive(),
				"参数array必须是原生数组:" + array);

		int arrayLength = Array.getLength(array);
		if (index < 0 || index >= arrayLength) {
			throw new ArrayIndexOutOfBoundsException("数据下标越界：" + index);
		}
	}

}
